package io;

import org.w3c.dom.ls.LSOutput;

import javax.imageio.stream.ImageInputStreamImpl;
import java.io.*;

/**
 * java将流分为节点流与处理流两类
 * 节点流：也称为低级流，是真实连接程序与另一端得“管道”，负责实际读写数据的流
 *       读写一定是建立在节点流得基础上进行的.
 *       节点流好比家里得“自来水管。”连接我们得家庭与自来水厂，负责搬运水。
 * 处理流：也称为高级流，不能独立存在，必须连接在其他流上，目的是当数据经过当前流
 * 时对其经行某种加工处理，简化我们对数据的同等操作。
 *        高级流好比家里常见的对水做加工的设备，比如“净水器”，“热水器”。
 *        有了它们我们就不必在对自己对水进行加工了
 *
 * 实际开发中我们经常会串联一组高级流最终连接到低级流上，在读写操作时以流水线式得加工完成
 * 复杂IO操作。这个过程是加快读写效率。
 *
 *缓冲流，是一对高级流，作用是加快效率和读取。
 *
 *
 */
public class CopyDemo03 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("PPT.pptx");
        BufferedInputStream bis=new BufferedInputStream(fis);


        FileOutputStream fos=new FileOutputStream("PPT.pptx");
        BufferedOutputStream bos=new BufferedOutputStream(fos);

        int d;
        long start= System.currentTimeMillis();
        while((d=bis.read())!=-1){
            bos.write(d);



        }
        long end=System.currentTimeMillis();
        System.out.println("耗时："+(end-start)+"MS");
        bis.close();
        bos.close();
    }







}
